@RESERVEDCheckBoxRESERVEDColumnRESERVEDComboBoxRESERVED CommandButtonRESERVED CommandGroupRESERVED ContainerRESERVEDControlRESERVEDCursorRESERVEDCustomRESERVEDDataEnvironmentRESERVEDEditBoxRESERVEDFormRESERVEDFormSetRESERVEDGridRESERVED HyperLinkRESERVEDImageRESERVEDLabelRESERVEDLineRESERVEDListBoxRESERVED OptionButtonRESERVED OptionGroupRESERVEDPageRESERVED PageFrameRESERVED ProjectHookRESERVEDRelationRESERVED SeparatorRESERVEDSessionRESERVEDShapeRESERVEDSpinnerRESERVEDTextBoxRESERVEDTimerRESERVEDToolbarRESERVEDByteRESERVEDBooleanRESERVEDIntegerRESERVEDLongRESERVEDCurrencyRESERVEDSingleRESERVEDDoubleRESERVEDDecimalRESERVEDDateRESERVEDStringRESERVEDObjectRESERVEDVariantRESERVEDVOIDRESERVEDShortRESERVEDDatetimeRESERVEDNumberRESERVEDCharacter RESERVEDHeader RESERVEDCollection RESERVEDException RESERVEDCursorAdapter RESERVEDLogicalRESERVED XMLAdapterRESERVEDXMLTableRESERVEDXMLField RESERVEDXML Web Service RESERVEDArrayName, oExpressionRESERVEDArrayName, cSetting2,ADBORESERVEDTADOCKSTATE() Parameter: 1 - returns only IDE windows. 2 - returns only toolbars.RESERVED ArrayNameRESERVED5ArrayName [, cFileSkeleton [, cAttribute [, nFlags]]]3,ADIR 4,ADIRTIP,TRESERVED™ADIR() nFlags Parameter (additive): 1 - File name returned is with capitalization on disk (default is UPPERCASE) 2 - Return short file name (DOS 8.3)RESERVEDArrayName [, 1 | 2 ] 2,ADOCKTIP,TRESERVED ArrayNameRESERVEDarrayname, [0 | oEventObject]RESERVEDSAFONT() nFlags Parameter: 1 - Treat 3rd parameter as a font character set value.RESERVED%ArrayName [, nWorkArea | cTableAlias]RESERVED?ArrayName [, cFontName [, nFontSize | nFontCharSet [, nFlags]]] 4,AFONTTIP,TRESERVED`ArrayName [, cLibraryName [, cClassName [, cTitleText [, cFileNameCaption [, cButtonCaption]]]]]RESERVEDArrayName, cFileNameRESERVEDArrayName, cClassNameRESERVEDArrayName, nType2,ALANRESERVED.ArrayName, cExpression [, lTrim][, cParseChar]RESERVED;ArrayName, ObjectName | cClassName [, 1 | 2 | 3] [, cFlags]!3,AMEMBERSTIP2,T 4,AMEMBERSTIP,TRESERVEDArrayName [, 1]RESERVED&ArrayName, cNetworkName, nResourceTypeRESERVED ArrayNameRESERVED!ArrayName, cProgramName [, nType]RESERVEDArrayName [, 1 | 2 | 3]2,ASELOBJTIP,TRESERVED ArrayNameRESERVED2ArrayName [, cCDXName [, nWorkArea | cTableAlias]]RESERVED ArrayName [, nDataSessionNumber]RESERVEDArrayName, cLibraryNameRESERVED nExpressionRESERVEDfSourceArrayName, DestinationArrayName[, nFirstSourceElement [, nNumberElements [, nFirstDestElement]]]RESERVED nExpressionRESERVED$oObjectName, cPropertyName [,eValue]RESERVEDcPathRESERVEDArrayName, nElementNumber [, 2]RESERVED ArrayNameRESERVED-ArrayName, nRowSubscript [, nColumnSubscript]RESERVEDArrayName, nElementNumber [, 2]RESERVEDArrayName [, nArrayAttribute] 2,ALENTIP,TRESERVED»ALEN() nArrayAttribute Parameter: 0 - returns the number of elements in the array (default) 1 - returns the number of rows in the array 2 - returns the number of columns in the arrayRESERVED[nWorkArea | cTableAlias]RESERVED cExpressionRESERVEDØAMEMBERS() cFlags Parameter: P - Protected H - Hidden G - Public N - Native U - User defined C - Changed I - Inherited B - Base R - Read only # - Add new column with flags + - Logical AND between flagsRESERVEDªAMEMBERS parameter tip: 0 - Specifies that the array contains a single column of property names (default). 1 - Specifies that the array contains the properties, methods, events and member objects. 2 - Specifies that the array contains just the objects members of the object reference passed. 3 - Specifies that the array contains the properties, methods, events and member objects of the passed COM or native VFP object.RESERVED cExpressionRESERVED]ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags]]]]  6,ASCANTIP,TRESERVEDÏASCAN() nFlags Parameter (additive): 1 - Case insensitive 2 - Exactness setting (ON) when overriding system value (see next flag) 4 - Override system SET EXACT setting 8 - Return row number if 2D arrayRESERVEDRASELOBJ parameter tip: 1 - Creates an array containing an object reference to the container for the currently selected control. 2 - Creates an array containing an object reference to the DataEnvironment object for the form. 3 - Creates an array containing an object reference to the container for the currently selected code snippet.RESERVED ArrayNameRESERVED nExpressionRESERVEDGArrayName [, nStartElement [, nNumberSorted [, nSortOrder [, nFlags]]]]4,ASORTTIP2,T 5,ASORTTIP,TRESERVEDEASORT() nFlags Parameter: 0 - Case sensitive 1 - Case insensitiveRESERVEDHASORT() nSortOrder Parameter: 0 - Sort ascending 1 - Sort descendingRESERVED%ArrayName, nElementNumber, nSubscriptRESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED nExpressionRESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED&cSearchExpression, cExpressionSearchedRESERVED&cSearchExpression, cExpressionSearchedRESERVEDnYCoordinate, nXCoordinateRESERVEDÖBINDEVENT() nFlags Parameter (additive): 1 - Call event before delegate. 2 - Do not allow an event to be triggered with a simple method call. * * Note: certain native events may not work with this flag set.RESERVED RESERVED!eTestValue, eLowValue, eHighValueRESERVEDnExpression [, nSize]RESERVED9oEventSource, cEvent, oEventHandler, cDelegate [, nFlags]5,BINDEVENTTIP,TRESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVED nExpressionRESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVEDnExpression1, nExpression2RESERVED-nExpression1, nExpression2, ..., nExpressionNRESERVED[nWorkArea | cTableAlias]RESERVEDÞCOMARRAY() nFlags Parameter (additive): 1 - The array is one based. 10 - The array is passed by reference. 100 - The array is a fixed size array and cannot be redimensioned. 1000 - Don't convert byte array to string.RESERVEDþCOMPROP() cProperty Parameter: UTF8 - Determines whether UNICODE strings returned from a COM object are converted to ANSI. Conversion is done by default. PUTREF - Determines if initial object assignment is PROPERTY_PUT (Default) or PROPERTY_PUTREF.RESERVED cExpressionRESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVED [lExpression]RESERVEDdExpression | tExpressionRESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVED nExpressionRESERVED nANSICodeRESERVED [nSeconds]RESERVED>cSearchedExpression, cSearchExpression, cReplacementExpressionRESERVED>cSearchedExpression, cSearchExpression, cReplacementExpressionRESERVEDdExpression | tExpressionRESERVED cMenuNameRESERVED cMenuBarNameRESERVEDoObject [, nFlags]2, COMARRAYTIP, TRESERVEDoObject [, nInfoType]2,COMCRESERVED cExceptionSource, cExceptionTextRESERVEDoExpression1, oExpression2RESERVED oCOMObject, cProperty [, eValue]2,COMPROPTIP,TRESERVED nExpressionRESERVED+nCurrentCodePage, nNewCodePage, cExpressionRESERVED[1 | 2]RESERVED[nWorkArea | cTableAlias]RESERVED cExpressionRESERVED+ClassName [, eParameter1, eParameter2, ...]RESERVED(cCLSID | cPROGID, cComputerName [, cIID]RESERVEDViewName [, cPath]RESERVED cExpressionRESERVEDcCharacterExpressionRESERVED [cExpression]RESERVED%cProperty [, nWorkArea | cTableAlias]RESERVED5cProperty [, eExpression [, cTableAlias | nWorkArea]]RESERVED}nWorkArea | cTableAlias, cOutput [, nOutputFormat [, nFlags [, nRecords [, cSchemaName [, cSchemaLocation [, cNameSpace]]]]]]13,XMLTIP,T 4,XMLTIP3,T 5,XMLTIP6,T 6,XMLTIP2,TRESERVED'cExpression [, cTableAlias | nWorkArea]RESERVEDRESERVEDcName, cType, cProperty1,DBGETRESERVED'cName, cType, cProperty, ePropertyValue1,DBGETRESERVED cDatabaseNameRESERVEDnTransactionNumberRESERVED.nChannelNumber, cItemName, cUDFName, nLinkTypeRESERVED0[lExpression1 | nChannelNumber [, lExpression2]]RESERVED%nChannelNumber, cCommand [, cUDFName]RESERVEDcServiceName, cTopicNameRESERVED RESERVEDAnChannelNumber, cItemName, cDataSent [, cDataFormat [, cUDFName]]RESERVED6nChannelNumber, cItemName [, cDataFormat [, cUDFName]]RESERVED'cOption [, nTimeoutValue | lExpression]RESERVED3cServiceName, cOption [, cDataFormat | lExpression]RESERVED%cServiceName, cTopicName [, cUDFName]RESERVEDnChannelNumber | cServiceNameRESERVEDÈDIRECTORY() nFlags Parameter: 0 - If the directory exists, returns .F. if marked with a Hidden or System attribute (default). 1 - If the directory exists, returns .T. regardless of its attributes.RESERVED[nYear, nMonth, nDay]RESERVED:[nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]]RESERVEDdExpression | tExpressionRESERVED RESERVED[cTableAlias | nWorkArea]RESERVEDcFileName, cDefaultRESERVED[cTableAlias | nWorkArea]RESERVED:[CDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVEDcExpression1, cExpression2RESERVEDcDirectoryName [, nFlags] 2,DIRTIP,TRESERVEDVolumeName [, nDiskInfo]]RESERVEDcFileName, nMaxLengthRESERVEDdExpression | tExpressionRESERVED![eParameter1 [, eParameter2] ...]RESERVED-dExpression | tExpression [, nFirstDayOfWeek]RESERVEDcDriveRESERVED cViewNameRESERVEDdExpression | tExpression [, 1]RESERVED nExpressionRESERVEDdExpression | tExpressionRESERVEDdDateExpressionRESERVED@nShortcutId | cFileName [, nLineno [, cClassName [, cProcName]]]RESERVED eExpressionRESERVED[nWorkArea | cTableAlias]RESERVED RESERVED cExpressionRESERVED"oCOMObject, oVFPObject [, lUnbind]RESERVEDeExpression1, eExpression2RESERVED.cExpression [, eParameter1, eParameter2, ...] RESERVED nExpressionRESERVEDWFCREATE() nFileAttribute Parameter (additive): 1 - Read-Only 2 - Hidden 4 - SystemRESERVED˜FIELD() nFlags Parameter: 0 - Return actual field name. 1 - Return field caption. If the field caption is an expression, return its evaluated value.RESERVED¹FILE() nFlags Parameter: 0 - If the file exists, returns .F. if marked with a Hidden or System attribute (default). 1 - If the file exists, returns .T. regardless of its attributes.RESERVEDÐFOPEN() nFileAttribute Parameter: 0 - (Default) Read-Only, Buffered 1 - Write-Only, Buffered 2 - Read-Write, Buffered 10 - Read-Only, Unbuffered 11 - Write-Only, Unbuffered 12 - Read-Write, UnbufferedRESERVED’FSEEK() nRelativePosition Parameter: 0 - (Default) The beginning of the file. 1 - The current file pointer position. 2 - The end of the file.RESERVEDnFileHandle, nNewFileSizeRESERVED nFileHandleRESERVED[nWorkArea | cTableAlias]RESERVEDcFileName [, nFileAttribute]2,Fcreatetip,TRESERVEDcFileName [, nType]RESERVED nFileHandleRESERVED RESERVED nFileHandleRESERVEDnFileHandle [, nBytes]RESERVED@nFieldNumber | cFieldName [, nWorkArea | cTableAlias [, nFlags]] 3,FIELDTIP,TRESERVEDcFileName [, nFlags] 2,FILETIP,TRESERVED cFileNameRESERVED[nWorkArea | cTableAlias]RESERVEDnFunctionKeyNumberRESERVED RESERVED[nWorkArea | cTableAlias]RESERVED nExpressionRESERVED2nAttribute [, cFontName, nFontSize [, cFontStyle]]RESERVEDcFileName [, nAttribute] 2,Fopentip,TRESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVEDcFileName, cExtensionRESERVEDcFileName, cPathRESERVED[nWorkArea | cTableAlias]RESERVED/nFileHandle, cExpression [, nCharactersWritten]RESERVEDnFileHandle, nBytesRESERVED.nFileHandle, nBytesMoved [, nRelativePosition] 3,Fseektip,TRESERVED2cFieldName [, nWorkArea | cTableAlias] | cFileNameRESERVED cFileNameRESERVED&cFileName1 [, nMSDOSPath | cFileName2]RESERVED!nPayment, nInterestRate, nPeriodsRESERVED/nFileHandle, cExpression [, nCharactersWritten]RESERVED&[nCodePage [, cText [, cDialogTitle]]]RESERVED[nDefaultColorNumber]RESERVED [ cAlias ]RESERVED<[cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]]RESERVED cVariableNameÜLPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL RELEASE PROCEDURE (_CODESENSE) RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main IF RIGHT(THIS.oFoxcode.FullLine,1) # "(" RETURN "" ENDIF LOCAL i, lnPtr, lnAddress, lnHandle THIS.lHideScriptErrors = .T. DECLARE integer GetModuleHandle in win32api string DECLARE integer GetProcAddress in win32api integer,string IF THIS.lHadError RETURN "" ENDIF lnHandle = GetModuleHandle("msvcrt.dll") IF THIS.lHadError RETURN "" ENDIF lnPtr = GetProcAddress(lnHandle,"_environ") IF lnPtr = 0 OR THIS.lHadError RETURN "" ENDIF lnPtr = THIS.Peek(lnPtr) IF lnPtr = 0 OR THIS.lHadError RETURN "" ENDIF i = 0 DO WHILE .t. lnAddress = THIS.Peek(lnPtr + m.i * 4) IF lnAddress = 0 OR THIS.lHadError EXIT ENDIF i = m.i + 1 DIMENSION THIS.oFoxcode.Items[m.i, 2] THIS.oFoxcode.Items[m.i, 1] = GETWORDNUM(THIS.GetStrSize(lnAddress),1,"=") THIS.oFoxcode.Items[m.i, 2] = GETENV(THIS.oFoxcode.Items[m.i, 1]) ENDDO THIS.oFoxcode.ItemScript = "funcmenu2" THIS.oFoxcode.ValueType = "L" RETURN THIS.AdjustCase() ENDPROC PROCEDURE Destroy CLEAR DLLS GetModuleHandle CLEAR DLLS GetProcAddress DODEFAULT() ENDPROC PROCEDURE GetStrSize(nAddr as Number) as String LOCAL lcResult, lcChr, i lcResult = "" i = 0 DO WHILE .t. lcChr = SYS(2600, m.nAddr + m.i, 1) IF ASC(lcChr) = 0 EXIT ENDIF lcResult = lcResult + lcChr i = m.i + 1 ENDDO RETURN lcResult ENDPROC PROCEDURE Peek(num as Integer) as integer LOCAL lcChr, lnResult lcChr= SYS(2600, m.num, 4) lnResult = THIS.Char4ToNum(lcChr) RETURN lnResult ENDPROC PROCEDURE Char4ToNum(cStr as String) LOCAL lnResult, i lnResult = 0 IF VARTYPE(m.cStr)#"C" OR EMPTY(m.cStr) RETURN lnResult ENDIF FOR i = 0 TO 3 lnResult = lnResult + ASC(SUBSTR(m.cStr, m.i + 1, 1)) * 256 ^ m.i ENDFOR RETURN lnResult ENDPROC ENDDEFINERESERVEDW[cFileExtensions [, cText [, cOpenButtonCaption [, nButtonType [, cTitleBarCaption]]]]]RESERVED5cFieldName | nFieldNumber [, cTableAlias | nWorkArea]RESERVED9[cFontName [, nFontSize [, cFontStyle [, nFontCharSet]]]]RESERVED RESERVED4oObject [, cIID | cInterface [, cTypelib | cProgID]]RESERVED5nRecordNumber [, cTableAlias | nWorkArea [, lNoFire]]RESERVED FileName | Moniker [, ClassName]RESERVED6oObjectName | cClassName, cProperty | cEvent | cMethodRESERVED=[cFileExtensions [, cFileNameCaption [, cOpenButtonCaption]]]RESERVED RESERVEDcString [, cDelimiter]RESERVEDcString, nIndex [, cDelimiter]RESERVEDMenuItemName, nMenuPositionRESERVEDcMenuBarName, nMenuBarPositionRESERVED*dExpression | tExpression, nNumberOfMonthsRESERVED[nWorkArea | cTableAlias]RESERVED [nLocation]—LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL RELEASE PROCEDURE (_CODESENSE) RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main IF RIGHT(THIS.oFoxcode.FullLine,1) # "(" RETURN "" ENDIF DIMENSION THIS.oFoxcode.Items[9,2] WITH THIS.oFoxcode .Items[1,1] = '0' .Items[2,1] = '1' .Items[3,1] = '2' .Items[4,1] = '3' .Items[5,1] = '4' .Items[6,1] = '5' .Items[7,1] = '6' .Items[8,1] = '7' .Items[9,1] = '8' .Items[1,2] = 'The directory from which Visual FoxPro was started.' .Items[2,2] = 'The Visual FoxPro installation root directory.' .Items[3,2] = 'The directory containing the Visual FoxPro samples. This directory is identical to the samples directory in the _SAMPLES system variable.' .Items[4,2] = 'The Visual Studio Common directory.' .Items[5,2] = 'The Visual FoxPro Graphics directory.' .Items[6,2] = 'The Visual Studio MSDN directory.' .Items[7,2] = 'The Visual Studio Tools directory.' .Items[8,2] = 'The user application data directory.' .Items[9,2] = 'The default directory for your Visual FoxPro projects.' .ValueType = "L" ENDWITH RETURN THIS.AdjustCase() ENDPROC ENDDEFINERESERVED tExpressionRESERVED [nExpression]RESERVED RESERVED;[cCDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVED'lExpression, eExpression1, eExpression2RESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVEDcDatabaseObjectName, cType2,INDBCRESERVEDheExpression [, lMovePointer [, nWorkArea | cTableAlias [, nIndexNumber | cIDXIndexFileName | cTagName]]]RESERVED[nSeconds] [, cHideCursor]RESERVEDPcInputPrompt [, cDialogCaption [, cDefaultValue [, nTimeout [, cTimeoutValue]]]]RESERVED [lExpression]RESERVED nExpressionRESERVED cExpressionRESERVED eExpressionRESERVED RESERVED cExpressionRESERVED3[cTableAlias | nWorkArea | cDatabaseName [, nType]]RESERVED[nWorkArea | cTableAlias]RESERVED RESERVED cExpressionRESERVED cExpressionRESERVED RESERVED eExpressionRESERVED+[nRecordNumber [, nWorkArea | cTableAlias]]RESERVED[nWorkArea | cTableAlias | 0]RESERVED cExpressionRESERVEDcPathRESERVEDcPathRESERVED cFileNameRESERVED cFileNameRESERVED cFileNameRESERVED:[CDXFileName [, nIndexNumber [, nWorkArea | cTableAlias]]]RESERVED6eIndexKey [, nIndexNumber [, nWorkArea | cTableAlias]]RESERVED RESERVEDcExpression, nExpressionRESERVEDcExpression, nExpressionRESERVED cExpressionRESERVED cExpressionRESERVEDcExpression1, cExpression2RESERVEDcExpression1, cExpression2RESERVED[1]RESERVED [cFileName]RESERVED2cFileName [, cFileExtensions [, cFileNameCaption]]RESERVEDH[nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea | cTableAlias]RESERVED nExpressionRESERVED nExpressionRESERVED:ReturnField, eSearchExpression, SearchedField [, cTagName]RESERVED cExpressionRESERVED cExpressionRESERVED[nWorkArea | cTableAlias]RESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVED[cWindowName [, nScaleMode]]RESERVEDRESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVEDdExpression | tExpressionRESERVED MemoFieldNameRESERVED RESERVED RESERVED[1]RESERVED>eMessageText [, nDialogBoxType] [, cTitleBarText] [, nTimeout] 2,Msgboxtip,TRESERVED>eMessageText [, nDialogBoxType] [, cTitleBarText] [, nTimeout] 2,Msgboxtip,TRESERVED/eExpression1, eExpression2 [, eExpression3 ...]RESERVED tExpressionRESERVED2MemoFieldName, nLineNumber [, nNumberOfCharacters]RESERVEDnDividend, nDivisorRESERVEDdExpression | tExpressionRESERVED0cMenuName, nMenuItemNumber | cSystemMenuItemNameRESERVEDcMenuBarName, cMenuTitleNameRESERVED[cWindowName [, nScaleMode]]RESERVEDfMESSAGEBOX() nDialogBoxType Parameter (additive): 0 - OK button only 1 - OK and Cancel buttons 2 - Abort, Retry and Ignore buttons 3 - Yes, No and Cancel buttons 4 - Yes and No buttons 5 - Retry and Cancel buttons ------------------------------------- 16 - Stop sign 32 - Question mark 48 - Exclamation point 64 - Information icon ------------------------------------- 256 - 2nd button default 512 - 3rd button default ------------------------------------- 4096 - System modal (use with Timeout parameter) Return values: OK-1, Cancel-2, Abort-3, Retry-4, Ignore-5, Yes-6, No-7RESERVED mExpressionRESERVED [cWindowName]RESERVED(nIndexNumber [, nWorkArea | cTableAlias]RESERVEDKcClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]]RESERVEDKcClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]]RESERVED cExpressionRESERVED nExpressionRESERVED [lExpression]RESERVEDeExpression1, eExpression2RESERVEDObjectName, nPositionRESERVED&cSearchExpression, cExpressionSearchedRESERVED'cExpression [, cTableAlias | nWorkArea]RESERVEDcONCommand [, KeyLabelName]RESERVED#[nWorkArea | cTableAlias [, nPath]]RESERVED [nOSInfo] LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL RELEASE PROCEDURE (_CODESENSE) RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main IF RIGHT(THIS.oFoxcode.FullLine,1) # "(" RETURN "" ENDIF DIMENSION THIS.oFoxcode.Items[11,2] THIS.oFoxcode.ItemSort = .F. THIS.oFoxcode.Items[1,1] = '1' THIS.oFoxcode.Items[2,1] = '2' THIS.oFoxcode.Items[3,1] = '3' THIS.oFoxcode.Items[4,1] = '4' THIS.oFoxcode.Items[5,1] = '5' THIS.oFoxcode.Items[6,1] = '6' THIS.oFoxcode.Items[7,1] = '7' THIS.oFoxcode.Items[8,1] = '8' THIS.oFoxcode.Items[9,1] = '9' THIS.oFoxcode.Items[10,1] = '10' THIS.oFoxcode.Items[11,1] = '11' THIS.oFoxcode.Items[1,2] = 'Specifies that the name and version number of the operating system is returned.' THIS.oFoxcode.Items[2,2] = 'Specifies that a character string indicating if the operating system supports DBCS (double-byte character sets) is returned If DBCS is supported, the character string “DBCS” is returned, otherwise the empty string is returned.' THIS.oFoxcode.Items[3,2] = 'Identifies the major version number of the operating system.' THIS.oFoxcode.Items[4,2] = 'Identifies the minor version number of the operating system.' THIS.oFoxcode.Items[5,2] = 'Identifies the build number of the operating system.' THIS.oFoxcode.Items[6,2] = 'Identifies the operating system platform.' THIS.oFoxcode.Items[7,2] = 'Contains a string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system.' THIS.oFoxcode.Items[8,2] = 'Identifies the major version number of the latest Service Pack installed on the system.' THIS.oFoxcode.Items[9,2] = 'Identifies the minor version number of the latest Service Pack installed on the system.' THIS.oFoxcode.Items[10,2] = 'A set of bit flags that identify the product suites available on the system. See help for more details.' THIS.oFoxcode.Items[11,2] = 'Indicates additional information about the system. See help for more details.' THIS.oFoxcode.ValueType = "L" RETURN THIS.AdjustCase() ENDPROC ENDDEFINERESERVED[cMenuTitle [, cMenuBarName]]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED*eExpression, nResultSize [, cPadCharacter]RESERVED RESERVED$nPrincipal, nInterestRate, nPaymentsRESERVED RESERVED RESERVEDLoObjectName | cClassName, cProperty | cEvent | cMethod | cObject, nAttribute3,PEMSRESERVED RESERVED [cMenuName]RESERVED*[nIndexNumber [, nWorkArea | cTableAlias]]RESERVED RESERVEDcMenuName, nMenuItemNumberRESERVEDcMenuBarName, cMenuTitleNameRESERVED[nLevel]RESERVED RESERVED cExpressionRESERVED RESERVED nPrinterSetting [, cPrinterName]RESERVED/[cCustomText [, cFileName [, cFileExtensions]]]RESERVED'nPayment, nInterestRate, nTotalPaymentsRESERVED$dExpression | tExpression [, nMonth]RESERVED#oEventSource, cEvent [, eParm1,...]RESERVED [nSeedValue]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED6cSearchExpression, cExpressionSearched [, nOccurrence]RESERVED&cSearchExpression, cExpressionSearchedRESERVED[nWorkArea | cTableAlias]RESERVED[nWorkArea | cTableAlias]RESERVED[nWorkArea | cTableAlias]RESERVED8[nRecords [, nRecordOffset]] [, cTableAlias | nWorkArea]RESERVED+nRelationNumber [, nWorkArea | cTableAlias]RESERVEDoObjectName, cPropertyNameRESERVEDcExpression, nTimesRESERVED[nWorkArea | cTableAlias]RESERVED"nRedValue, nGreenValue, nBlueValueRESERVED)nColorSchemeNumber [, nColorPairPosition]RESERVEDcExpression, nCharactersRESERVEDcExpression, nCharactersRESERVEDH[nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea | cTableAlias]RESERVEDnExpression, nDecimalPlacesRESERVED nExpressionRESERVED cExpressionRESERVEDnConnectionHandleRESERVEDEnConnectionHandle, cTableName [, "FOXPRO" | "NATIVE" [, cCursorName]]RESERVEDnConnectionHandleRESERVED_[nStatementHandle | [cConnectionName | cDataSourcename [, cUserID[, cPassword]][, lSharable]]] RESERVEDnConnectionHandleRESERVED0nConnectionHandle, [cSQLCommand [, cCursorName]]RESERVEDnConnectionHandle, cSetting2,SQLSERESERVEDnConnectionHandleRESERVED.nConnectionHandle, cSQLCommand [, cCursorName]RESERVEDnConnectionHandleRESERVED+nConnectionHandle, cSetting [, eExpression]2,SQLSERESERVED(lShared | cConnectString [, lSharable] RESERVED1nConnectionHandle [, cTableTypes [, cCursorName]]RESERVEDÂSTRTOFILE() eFlags Parameter: 0 - The file is overwritten with the character string (can also pass .F.) 1 - The string is appended to the end of the file (can also pass .T.) 2 - Write UNICODE Byte Order Mark at beginning of file. String is assumed to be UNICODE (no translation is done). File is overwritten. 4 - Write UTF-8 Byte Order Mark at the beginning of file. String is assumed to be UTF-8 (no translation is done). File is overwritten.RESERVEDoObjectReference, cFileNameRESERVED"nSchemeNumber [, nColorPairNumber]RESERVED RESERVED tExpressionRESERVED RESERVEDWeExpression [, nWorkArea | cTableAlias [, nIndexNumber | cIDXIndexFileName | cTagName]]RESERVED[0 | 1 | cTableAlias]RESERVED'cSETCommand [, 1 | cExpression | 2 | 3]RESERVEDBcFieldName | nFieldNumber, nFieldState [, cTableAlias | nWorkArea]RESERVED nExpressionRESERVED nExpressionRESERVEDcMenuName, MenuItemNumberRESERVEDcMenuBarName, cMenuTitleNameRESERVED cExpressionRESERVEDnSpacesRESERVED nExpressionRESERVED RESERVED*nExpression [, nLength [, nDecimalPlaces]]RESERVEDvSTREXTRACT() nFlags Parameter (additive): 1 - Case insensitive search 2 - Do not require end delimiter to be foundRESERVEDGcSearchExpression, cBeginDelim [, cEndDelim [, nOccurrence [, nFlags]]] 5,STREXTIP,TRESERVED!cExpression, cFileName [, eFlags]3,STRTOFILETIP,TRESERVED-cExpression, nConversionSetting [, nLocaleID]2,STRCVRESERVED_cSearched, cSearchFor [, cReplacement [, nStartOccurrence [, nNumberOfOccurrences [, nFlags]]]]6,STRTRANTIP,TRESERVED]STRTRAN() nFlags Parameter (additive): 1 - Case insensitive 2 - Match string case replaceRESERVEDAcExpression, nStartReplacement, nCharactersReplaced, cReplacementRESERVEDAcExpression, nStartReplacement, nCharactersReplaced, cReplacementRESERVED3cExpression, nStartPosition [, nCharactersReturned]RESERVED3cExpression, nStartPosition [, nCharactersReturned]RESERVEDnValue [, eValue]RESERVEDnScreenElementRESERVED&[lAllRows [, cTableAlias | nWorkArea]]RESERVEDK[lAllRows | nRows [, lForce [, cTableAlias | nWorkArea [, cErrorArray]]]] RESERVED8[CDXFileName [, nTagNumber [, nWorkArea | cTableAlias]]]RESERVED)[CDXFileName [, nWorkArea | cTableAlias]]RESERVED9[IndexName [, CDXFileName [, nExpression | cExpression]]]RESERVED nExpressionRESERVED/nRelationshipNumber [, nWorkArea | cTableAlias]RESERVED9cExpression [, lRecursive [, cLeftDelim [, cRightDelim]]]RESERVED [nExpression]RESERVEDeExpression [, cFormatCodes]RESERVED cExpressionRESERVEDtExpression [, 1 | 2]RESERVED tExpressionRESERVED RESERVED3cExpression [, cFontName, nFontSize [, cFontStyle]]RESERVED cExpressionRESERVED?oEventObject | [oEventSource, cEvent, oEventHandler, cDelegate]RESERVED cExpressionRESERVED[nWorkArea | cTableAlias]RESERVED cExpressionRESERVEDeExpression [, lNullDataType]RESERVEDRESERVEDWindowName [, .T. | .F.]RESERVED [WindowName]RESERVEDindowName] [nChildWindow]RESERVED [WindowName]RESERVED" - external schema is produced, name = schemaName.xmlRESERVEDšCURSORTOXML() nFlags Parameter (additive): 0 - Creates pretty formatted XML with encoding="Windows-1252" (default). 1 - Produces unformatted continous XML. 2 - Empty elements are written with open/close tags. 4 - Preserve white space in fields. 8 - Wrap Memo fields in CDATA sections. 16 - Output encoding attribute is set to code page of cursor. 32 - Output encoding attribute is set to UTF-8 (no character translation). 48 - Output encoding attribute is set to UTF-8 (character data translated to UTF-8). 512 - Treat cOutput parameter as a file name (default is memory variable). 4096 - Disable conversion of Memo Binary fields using base64 encoding.RESERVEDXXMLTOCURSOR() nFlags Parameter (additive): 4 - Preserve white space in data. Overrides the xml:space attribute of the XML data. 512 - The first parameter is a literal file name or memvar containing same that represents a valid XML file. Otherwise, it is an expression that returns XML or memory variable containing an XML string. 1024 - Character and Memo fields in the resultant cursor will be created with the NOCPTRANS option, and the text/xml values in the incoming elements will be inserted into the Character/Memo field on an untranslated, byte for byte basis. 2048 - Map xsd:decimal types with totalDigits="19" and fractionDigits="4" to Currency field instead of default Numeric one. 4096 - Disable base64 decoding for Memo Binary fields. 8192 - cCursorName refers to an existing table or cursor, or the alias of an existing table or cursor.RESERVEDXMLUPDATEGRAM() nFlags Parameter (additive): 1 - Produces unformatted continous XML (default is pretty formatting). 2 - Empty elements are written with open/close tags. 4 - Preserve white space in fields. 8 - Wrap Memo fields in CDATA sections. 16 - Output encoding attribute is set to code page of cursor. 32 - Output encoding attribute is set to UTF-8 (no character translation). 48 - Output encoding attribute is set to UTF-8 (double byte chars translated to UTF-8). * default encoding is Windows-1252RESERVED³CURSORTOXML() nRecords Parameter (additive): 0 - Outputs all rows (Record pointer moves to EOF) (Default). - Outputs rows (Record pointer moves to last row processed).RESERVED1eExpression | cXMLFile [, cCursorName [, nFlags]] 3,XMLTIP4,TRESERVED+[cAliasList [, nFlags [, cSchemaLocation]]] 2,XMLTIP5,TRESERVEDdExpression | tExpressionRESERVEDMenu Popup Screen WindowRESERVED7ACTIVATE MENU MenuBarName [NOWAIT] [PAD MenuTitleName] RESERVEDQACTIVATE POPUP MenuName [AT nRow, nColumn] [BAR nMenuItemNumber] [NOWAIT] [REST] RESERVEDzACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALL [IN [WINDOW] WindowName3 | IN SCREEN] [BOTTOM | TOP | SAME] [NOSHOW]RESERVEDClass Object TableRESERVEDLADD CLASS ClassName [OF ClassLibraryName1] TO ClassLibraryName2 [OVERWRITE] RESERVEDMADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT] [WITH cPropertylist]RESERVED.ADD TABLE TableName | ? [NAME LongTableName] RESERVED ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]] [AUTOINC [NEXTVALUE nValue [STEP nValue]]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE [ COLLATE cCollateSequence]] [REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [NOVALIDATE] * see help for other variationsRESERVED4Blank From From Array General Memo Procedures RESERVED5APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU] RESERVED,APPEND FROM FileName | ?[FIELDS FieldList] [FOR lExpression] [[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV| XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage] RESERVEDqAPPEND FROM ARRAY ArrayName [FOR lExpression] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] RESERVED`APPEND GENERAL GeneralFieldName [FROM FileName] [DATA cExpression] [LINK] [CLASS OLEClassName] RESERVEDBAPPEND MEMO MemoFieldName FROM FileName[OVERWRITE] [AS nCodePage] RESERVED;APPEND PROCEDURES FROM FileName [AS nCodePage] [OVERWRITE] RESERVED)ASSERT lExpression [MESSAGE cMessageText]RESERVEDxAVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] RESERVEDRESERVEDtBLANK [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias] RESERVED¬BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID] [NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]] [WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber] [NOCAPTIONS] [LOCK nNumberOfFields]RESERVEDApp Dll Exe Mtdll ProjectRESERVED3BUILD APP APPFileName FROM ProjectName [RECOMPILE] RESERVED3BUILD DLL DLLFileName FROM ProjectName [RECOMPILE] RESERVED3BUILD EXE EXEFileName FROM ProjectName [RECOMPILE] RESERVED7BUILD MTDLL MTDLLFileName FROM ProjectName [RECOMPILE] RESERVEDÖBUILD PROJECT ProjectFileName [RECOMPILE] [FROM ProgramName1 | MenuName1 | ReportName1 | LabelName1 | FormName1 | LibraryName1 [, ProgramName2 | MenuName2 | ReportName2 | LabelName2 | FormName2 | LibraryName2 ...]]RESERVED_CALCULATE eExpressionList [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] [IN nWorkArea | cTableAlias] eExpressionList:: AVG(nExpression) CNT() MAX(eExpression) MIN(eExpression) NPV(nExpression1, nExpression2 [, nExpression3]) STD(nExpression) SUM(nExpression) VAR(nExpression)RESERVEDRESERVEDRESERVED‰TRY [ tryCommands ] [ CATCH [ TO VarName ] [ WHEN lExpression ] [ catchCommands ]] [ FINALLY [ finallyCommands ]] ENDTRYRESERVEDRESERVEDRESERVED£CHANGE [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1][IN [WINDOW] WindowNam2 | IN SCREEN | IN MACDESKTOP]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] [NOCAPTIONS] RESERVEDwAll Class Classlib Debug Dlls Events Fields Macros Memory Menus Popups Program Resources Typeahead WindowRESERVEDCLEAR CLASS ClassNameRESERVEDCLEAR CLASSLIB ClassLibraryNameRESERVEDCLEAR DLLS [cAliasname]RESERVEDCLEAR RESOURCES [FileName]RESERVED@All Alternate Databases Debugger Indexes Procedures TablesRESERVEDCLOSE DATABASES [ALL]RESERVEDCLOSE TABLES [ALL]RESERVED›COMPILE [DATABASE | FORM | CLASSLIB | LABEL | REPORT] FileName | FileSkeleton [?] COMPILE FileName | FileSkeleton | ? [ENCRYPT] [NODEBUG] [AS nCodePage]RESERVEDRESERVEDGFile Indexes Memo Procedures Structure Structure Extended Tag ToRESERVED!COPY FILE FileName1 TO FileName2 RESERVED3COPY INDEXES IndexFileList | ALL [TO CDXFileName] RESERVED>COPY MEMO MemoFieldName TO FileName [ADDITIVE] [AS nCodePage] RESERVED6COPY PROCEDURES TO FileName [AS nCodePage] [ADDITIVE] RESERVED{COPY STRUCTURE TO TableName [FIELDS FieldList] [[WITH] CDX | [WITH] PRODUCTION] [DATABASE cDatabaseName [NAME cTableName]] RESERVEDdCOPY STRUCTURE EXTENDED TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList] RESERVED3COPY TAG TagName [OF CDXFileName] TO IndexFileName RESERVED COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [[WITH] CDX] | [[WITH] PRODUCTION] [NOOPTIMIZE] [[TYPE] [FOXPLUS | FOX2X | DIF | MOD | SDF | SYLK | WK1 | WKS | WR1 | WRK | CSV | | XLS | XL5 | DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter]]] [AS nCodePage] RESERVED˜COPY TO ARRAY ArrayName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] RESERVEDPCOUNT [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarName] [NOOPTIMIZE] RESERVED–* Class Classlib Color Set Connection Cursor Database Form Label Menu Project Query Report SQL View Table Trigger On View RESERVEDkCREATE CLASS ClassName | ?[OF ClassLibraryName1 | ?] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT] RESERVED!CREATE CLASSLIB ClassLibraryName RESERVEDCREATE COLOR SET ColorSetName RESERVED£CREATE CONNECTION [ConnectionName | ?] [DATASOURCE cDataSourceName] [USERID cUserID] [PASSWORD cPassWord] [DATABASE cDatabaseName] | CONNSTRING cConnectionString] RESERVED#CREATE CURSOR alias_name (fname1 type [(precision [, scale]) [NULL | NOT NULL] [CHECK lExpression [ERROR cMessageText]] [AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression] [UNIQUE [COLLATE cCollateSequence]] [NOCPTRANS] [, fname2 ...]) | FROM ARRAY ArrayNameRESERVED#CREATE DATABASE [DatabaseName | ?] RESERVEDCREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?] [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] RESERVEDfCREATE LABEL [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN RESERVEDeCREATE MENU [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN RESERVEDCREATE PROJECT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN [NOSHOW] [NOPROJECTHOOK] RESERVED%CREATE QUERY [FileName | ?] [NOWAIT] RESERVEDÞCREATE REPORT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN CREATE REPORT FileName1 | ? FROM FileName2 [FORM | COLUMN] [FIELDS FieldList] [ALIAS] [NOOVERWRITE] [WIDTH nColumns]RESERVED}CREATE SQL VIEW [ViewName] [REMOTE] [CONNECTION ConnectionName [SHARE] | CONNECTION DataSourceName] [AS SQLSELECTStatement] RESERVED×CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE] (FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]] [ AUTOINC [NEXTVALUE nValue [STEP nValue]]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE [ COLLATE cCollateSequence]] [REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [, FieldName2 ...] [, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpression3 TAG TagName3 [ COLLATE cCollateSequence]] [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] [ COLLATE cCollateSequence] REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR cMessageText2]] ) | FROM ARRAY ArrayNameRESERVEDHCREATE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE AS lExpression RESERVEDCREATE VIEW FileName RESERVEDMenu Popup WindowRESERVED1DEACTIVATE MENU MenuName1 [, MenuName2 ...] | ALLRESERVED2DEACTIVATE POPUP MenuName1 [, MenuName2 ...] | ALLRESERVED7DEACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALLRESERVEDRESERVED(DEBUGOUT eExpression1 [, eExpression2] …RESERVEDŽDECLARE [cFunctionType] FunctionName IN WIN32API | LibraryName [AS AliasName] [cParamType1 [@] ParamName1, cParamType2 [@] ParamName2, ...]RESERVED$Bar Class Menu Pad Popup WindowRESERVEDƒDEFINE BAR nMenuItemNumber1 | SystemItemName OF MenuName MRU | PROMPT cMenuItemText [BEFORE nMenuItemNumber2 | AFTER nMenuItemNumber3] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [MESSAGE cMessageText] [SKIP [FOR lExpression]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] [PICTURE cFileName | PICTRES cMenubarName] [INVERT] RESERVEDDEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary][OLEPUBLIC] [[PROTECTED | HIDDEN] PropertyName1, ...] [Object.]PropertyName = eExpression] [ADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT][WITH cPropertylist]...] [IMPLEMENTS InterfaceName [EXCLUDE] IN Typelib | Typelibguid | ProgID] [[PROTECTED | HIDDEN] FUNCTION | PROCEDURE Name[_ACCESS | _ASSIGN]([parm1 | array1[] [AS type][@], ...]) [AS type][HelpString helpstring] [ENDFUNC | ENDPROC]] ENDDEFINERESERVEDþDEFINE MENU MenuBarName [BAR [AT LINE nRow]] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter] [MESSAGE cMessageText] [NOMARGIN] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] RESERVEDmDEFINE PAD MenuTitle1 OF MenuBarName PROMPT cMenuTitleText [AT nRow, nColumn] [BEFORE MenuName2 | AFTER MenuName3] [NEGOTIATE cContainerPosition [, cObjectPosition]] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [SKIP [FOR lExpression]] [MESSAGE cMessageText] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] RESERVEDÀDEFINE POPUP MenuName [FROM nRow1, nColumn1] [TO nRow2, nColumn2] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOOTER cFooterText] [KEY KeyLabel] [MARGIN] [MARK cMarkCharacter] [MESSAGE cMessageText] [MOVER] [MULTISELECT] [PROMPT FIELD FieldName | PROMPT FILES [LIKE FileSkeleton]| PROMPT STRUCTURE] [RELATIVE] [SCROLL] [SHORTCUT] [TITLE cMenuTitleText] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] RESERVED&DEFINE WINDOW WindowName1 FROM nRow1, nColumn1 TO nRow2, nColumn2 | AT nRow3, nColumn3 SIZE nRow4, nColumn4 [IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP[NAME ObjectName] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOOTER cFooterText] [TITLE cTitleText] [HALFHEIGHT] [DOUBLE | PANEL | NONE | SYSTEM | cBorderString] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MDI | NOMDI] [MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1] [FILL cFillCharacter | FILL FILE FileName2] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] RESERVEDSAll For From Connection Database File In Next Rest Tag Trigger On View RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] RESERVED!DELETE CONNECTION ConnectionName RESERVED;DELETE DATABASE DatabaseName | ? [DELETETABLES] [RECYCLE] RESERVED$DELETE FILE [FileName | ?][RECYCLE] RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] RESERVED^DELETE FROM [DatabaseName!]TableName [WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] RESERVEDbDELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] RESERVEDwDELETE TAG TagName1 [OF CDXFileName1] [, TagName2 [OF CDXFileName2]] ... -or- DELETE TAG ALL [OF CDXFileName]RESERVED9DELETE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE RESERVEDDELETE VIEW ViewName RESERVEDdDIMENSION ArrayName1(nRows1 [, nColumns1]) [AS cType] [, ArrayName2(nRows2 [, nColumns2])] ... RESERVEDoDIR | DIRECTORY [ON Drive] [[LIKE] [Path] [FileSkeleton]] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] RESERVEDiConnections Database Dlls Fields Files Memory Objects Procedures Status Structure Tables ViewsRESERVED¡DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] RESERVEDUDISPLAY CONNECTIONS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDRDISPLAY DATABASE [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDNDISPLAY DLLS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDŸDISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVED`DISPLAY FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDeDISPLAY MEMORY [LIKE VarSkeleton] [TO PRINTER [PROMPT] | TO [FILE] FileName [ADDITIVE]] [NOCONSOLE] RESERVEDfDISPLAY OBJECTS [LIKE cObjectSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE]RESERVEDTDISPLAY PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDPDISPLAY STATUS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDpDISPLAY STRUCTURE [IN nWorkArea | cTableAlias] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDPDISPLAY TABLES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDODISPLAY VIEWS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDRESERVED§DO CASE CASE lExpression1 Commands [CASE lExpression2 Commands ... CASE lExpressionN Commands] [OTHERWISE Commands] ENDCASE RESERVED^DO FORM FormName | ? [NAME VarName [LINKED]][WITH cParameterList][TO VarName][NOREAD] [NOSHOW]RESERVED=DO WHILE lExpression Commands [LOOP] [EXIT] ENDDO RESERVED×DOCK WINDOW WindowName POSITION nPosition [WINDOW WindowName] | WINDOW WindowName Position: 0 Top 1 Left 2 Right 3 Bottom 4 Tabbed -1 Undock Window -2 Undock Outer Container -3 Undock Inner ContainerRESERVEDDOEVENTS [FORCE]RESERVEDEDO ProgramName1 | ProcedureName [IN ProgramName2][WITH ParameterList]RESERVED  Table ViewRESERVED-DROP TABLE TableName | FileName | ?[RECYCLE] RESERVEDDROP VIEW ViewName RESERVEDpEDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1][IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber] [NOCAPTIONS] RESERVED EJECT PAGE RESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDERASE FileName | ?[RECYCLE] RESERVEDCERROR nErrorNumber | nErrorNumber, cMessageText1 | [cMessageText2] RESERVEDRESERVED®EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage] RESERVED~EXTERNAL FILE FileList | ARRAY ArrayList| CLASS | FORM | LABEL | LIBRARY | MENU | PROCEDURE | QUERY | REPORT | SCREEN | TABLE RESERVED‰TRY [ tryCommands ] [ CATCH [ TO VarName ] [ WHEN lExpression ] [ catchCommands ]] [ FINALLY [ finallyCommands ]] ENDTRYRESERVEDRESERVEDºFOR Var = nInitialValue TO nFinalValue [STEP nIncrement] Commands [EXIT] [LOOP] ENDFOR | NEXT FOR EACH Var IN Group Commands [EXIT] [LOOP] ENDFOR | NEXT [Var] RESERVEDFREE TABLE TableName RESERVEDwFUNCTION FunctionName [LPARAMETERS parameter1 [,parameter2, ...] Commands [RETURN [eExpression]] ENDFUNCRESERVED{GATHER FROM ArrayName | MEMVAR | NAME ObjectName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO] RESERVEDoGETEXPR [cCaptionText] TO MemVarName [TYPE cExpressionType [; cErrorMessageText]] [DEFAULT cDefaultExpression] RESERVED?GO TOP | BOTTOM | nRecordNumber [IN nWorkArea | IN cTableAlias]RESERVEDAGOTO TOP | BOTTOM | nRecordNumber [IN nWorkArea | IN cTableAlias]RESERVED`HELP [Topic | ID nContextID] [IN [WINDOW] WindowName | IN [WINDOW] SCREEN| IN [WINDOW] [NOWAIT] RESERVED(HIDDEN [PROCEDURE | FUNCTION] MemberNameRESERVEDMenu Popup WindowRESERVED8HIDE MENU MenuBarName1 [, MenuBarName2 ...] | ALL [SAVE]RESERVED5HIDE POPUP PopupName1 [, PopupName2 ...] | ALL [SAVE]RESERVEDHIDE WINDOW WindowName1 [, WindowName2 ...] | ALL | SCREEN [IN [WINDOW] WindowNameN | IN [WINDOW] SCREEN] [BOTTOM | TOP | SAME]RESERVED>IF lExpression [THEN] Commands [ELSE Commands] ENDIF RESERVEDEIMPLEMENTS cInterfaceName [EXCLUDE] IN TypeLib | TypeLibGUID | ProgIDRESERVEDÃIMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]] [TYPE] FW2 | MOD | PDOX | RPD | WK1| WK3 | WKS | WR1 | WRK | XLS| XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName] [AS nCodePage] RESERVED´INDEX ON eExpression TO IDXFileName | TAG TagName [COLLATE cCollateSequence] [OF CDXFileName] [FOR lExpression] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] RESERVED!INSERT INTO dbf_name [(fname1 [, fname2, ...])] VALUES (eExpression1 [, eExpression2, ...]) INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR | FROM NAME ObjectName INSERT INTO dbf_name [(fname1 [, fname2, ...])] SELECT [(fname1 [, fname2, ...])] FROM tablename WHERE conditionRESERVED(KEYBOARD cKeyboardValue [PLAIN] [CLEAR]  '{LEFTARROW}' '{RIGHTARROW}' '{UPARROW}' '{DNARROW}' '{HOME}' '{END}' '{PGUP}' '{PGDN}' '{ESC}' '{DEL}' '{BACKSPACE}' '{SPACEBAR}' '{INS}' '{TAB}' '{BACKTAB}' '{ENTER}' '{CTRL+A}' '{SHIFT+F1}' '{ALT+F1}' '{LEFTMOUSE}' '{RIGHTMOUSE}' '{MOUSE}' RESERVEDÐLABEL [FORM FileName1 | FORM ?] [ENVIRONMENT] [Scope][FOR lExpression1] [WHILE lExpression2] [NOCONSOLE] [NOOPTIMIZE] [PDSETUP] [PREVIEW [NOWAIT]] [NAME ObjectName] [TO PRINTER [PROMPT] | TO FILE FileName2] RESERVEDkConnections Database Dlls Fields Files Memory Objects Procedures Status Structure Tables Views RESERVEDœLIST [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDRLIST CONNECTIONS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDOLIST DATABASE [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDKLIST DLLS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDœLIST [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVED]LIST FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]RESERVEDbLIST MEMORY [LIKE VarSkeleton] [TO PRINTER [PROMPT] | TO [FILE] FileName [ADDITIVE]] [NOCONSOLE] RESERVEDeLIST OBJECTS [LIKE cObjectSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDQLIST PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDMLIST STATUS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDmLIST STRUCTURE [IN nWorkArea | cTableAlias] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDMLIST TABLES [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVEDLLIST VIEWS [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] [NOCONSOLE] RESERVED©LOCAL cVariable1 [AS cType [OF cClassLib]], cVariable2, ..., cVariableN LOCAL [ARRAY] ArrayName1(nRows1 [, nColumns1]) [, ArrayName2(nRows2 [, nColumns2])] ... RESERVED6LOCATE FOR lExpression1 [Scope] [WHILE] [NOOPTIMIZE] RESERVEDRESERVEDLPARAMETERS ParameterListRESERVEDMD cPath | MKDIR cPathRESERVEDMD cPath | MKDIR cPathRESERVEDŠClass Command Connection Database File Form General Label Memo Menu Procedure Project Query Report Structure View Window RESERVED€MODIFY CLASS ClassName [OF ClassLibraryName1] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT] [METHOD MethodName] [SAVE] RESERVED¹MODIFY COMMAND [FileName | ?] [NOEDIT][NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE] RESERVED'MODIFY CONNECTION [ConnectionName | ?] RESERVED5MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT] RESERVED¶MODIFY FILE [FileName | ?] [NOEDIT][NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE] RESERVEDŽMODIFY FORM [FormName | ?] [NOWAIT] [METHOD MethodName] [NOENVIRONMENT] [SAVE] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] RESERVEDyMODIFY LABEL [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [SAVE] RESERVED¶MODIFY MEMO MemoField1 [, MemoField2 ...] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [SAME] [SAVE]RESERVEDhMODIFY MENU [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOWAIT] [SAVE] RESERVEDSMODIFY PROJECT [FileName | ?] [IN SCREEN] [NOWAIT] [SAVE] [NOSHOW] [NOPROJECTHOOK] RESERVED]MODIFY QUERY [FileName | ?] [[WINDOW WindowName1] [IN SCREEN] [NOWAIT] [SAVE] [AS nCodePage] RESERVEDzMODIFY REPORT [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [SAVE] RESERVED(MODIFY VIEW ViewName [REMOTE] [NOWAIT] RESERVED£MODIFY WINDOW WindowName | SCREEN [FROM nRow1, nColumn1 TO nRow2, nColumn2 | AT nRow3, nColumn3 SIZE nRow4, nColumn4] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [TITLE cTitleText] [HALFHEIGHT] [DOUBLE | PANEL | NONE | SYSTEM] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1][FILL FILE FileName2] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] RESERVED«MOUSE [CLICK | DBLCLICK] [AT nRow1, nColumn1] | DRAG TO nRow2, nColumn2, nRow3, nColumn3 ...] [PIXELS] [WINDOW cWindowName] [LEFT | MIDDLE | RIGHT] [SHIFT] [CONTROL] [ALT]RESERVED Popup WindowRESERVEDSET CURRENCY TO [cCurrencySymbol] SET CURRENCY LEFT | RIGHTRESERVEDSET CURSOR ON | OFFRESERVEDSET DATABASE TO [DatabaseName](LPARAMETER oFoxCode LOCAL aDBCs,i,lnData DIMENSION aDBCs[1] lnData = ADATA(aDBCs) IF m.lnData = 0 RETURN .F. ENDIF DIMENSION oFoxcode.Items[lnData,2] FOR i = 1 TO m.lnData oFoxcode.Items[m.i,1] = aDBCs[m.i,1] oFoxcode.Items[m.i,2] = aDBCs[m.i,2] ENDFOR oFoxcode.ValueType = "L" RESERVED'SET DATASESSION TO [nDataSessionNumber]RESERVEDzSET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN| ITALIAN | JAPAN | TAIWAN | USA | MDY | DMY | YMD | SHORT | LONGºLPARAMETER oFoxCode DIMENSION oFoxcode.Items[14,2] WITH oFoxCode .Items[1,1] = "AMERICAN" .Items[1,2] = "mm/dd/yy" .Items[2,1] = "ANSI" .Items[2,2] = "yy.mm.dd" .Items[3,1] = "BRITISH" .Items[3,2] = "dd/mm/yy" .Items[4,1] = "FRENCH" .Items[4,2] = "dd/mm/yy" .Items[5,1] = "GERMAN" .Items[5,2] = "dd.mm.yy" .Items[6,1] = "ITALIAN" .Items[6,2] = "dd-mm-yy" .Items[7,1] = "JAPAN" .Items[7,2] = "yy/mm/dd" .Items[8,1] = "TAIWAN" .Items[8,2] = "yy/mm/dd" .Items[9,1] = "USA" .Items[9,2] = "mm-dd-yy" .Items[10,1] = "MDY" .Items[10,2] = "mm/dd/yy" .Items[11,1] = "DMY" .Items[11,2] = "dd/mm/yy" .Items[12,1] = "YMD" .Items[12,2] = "yy/mm/dd" .Items[13,1] = "SHORT" .Items[13,2] = "Short date format determined by the Windows Control Panel short date setting." .Items[14,1] = "LONG" .Items[14,2] = "Long date format determined by the Windows Control Panel long date setting." .ValueType = "L" ENDWITHRESERVEDSET DEBUG ON | OFFRESERVED%SET DEBUGOUT TO [FileName [ADDITIVE]]RESERVED SET DECIMALS TO [nDecimalPlaces]RESERVEDSET DEFAULT TO [cPath]RESERVEDSET DELETED ON | OFFRESERVEDSET DEVELOPMENT ON | OFFRESERVED7SET DEVICE TO SCREEN | PRINTER [PROMPT] | FILE FileNameRESERVED2SET DISPLAY TO CGA | EGA25 | EGA43 | VGA25 | VGA50RESERVEDSET ECHO ON | OFFRESERVEDSET ENGINEBEHAVIOR 80 | 70RESERVEDSET ESCAPE ON | OFFRESERVED;SET EVENTLIST TO [EventName1 [, EventName2 ...] [ADDITIVE]]RESERVED>SET EVENTTRACKING ON | OFF | PROMPT | TO [FileName [ADDITIVE]]RESERVEDSET EXACT ON | OFFRESERVEDSET EXCLUSIVE ON | OFFRESERVEDSET FDOW TO [nExpression]RESERVED}SET FIELDS ON | OFF | LOCAL | GLOBAL SET FIELDS TO [[FieldName1 [, FieldName2 ...]] | ALL [LIKE Skeleton | EXCEPT Skeleton]]RESERVED8SET FILTER TO [lExpression] [IN nWorkArea | cTableAlias]RESERVEDSET FIXED ON | OFFRESERVEDSET FULLPATH ON | OFFRESERVED?SET FUNCTION nFunctionKeyNumber | KeyLabelName TO [eExpression]RESERVEDSET FWEEK TO [nExpression]RESERVEDSET HEADINGS ON | OFFRESERVEDUSET HELP ON | OFF SET HELP [TO [cFileName]] [COLLECTION [cCollectionURL]] [SYSTEM]RESERVED+SET HELPFILTER [AUTOMATIC] TO [lExpression]RESERVEDSET HOURS TO [12 | 24]RESERVEDSET INDEX TO [IndexFileList | ?] [ORDER nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]] [ADDITIVE] RESERVED\SET KEY TO [eExpression1 | RANGE eExpression2 [, eExpression3]] [IN cTableAlias | nWorkArea]RESERVEDSET KEYCOMP TO DOS | WINDOWSRESERVED$SET LIBRARY TO [FileName [ADDITIVE]]RESERVEDSET LOCK ON | OFFRESERVEDSET LOGERRORS ON | OFFRESERVEDSET MACKEY TO [KeyLabelName]RESERVEDSET MARGIN TO nColumnsRESERVED²SET MARK TO [cDelimiter] SET MARK OF MENU MenuBarName1 TO lExpression1 SET MARK OF POPUP MenuName1 TO lExpression3 SET MARK OF BAR nMenuItemNumber OF MenuName2 TO lExpression4RESERVEDSET MEMOWIDTH TO nColumnsRESERVEDmSET MESSAGE TO [cMessageText] SET MESSAGE TO [nRow [LEFT | CENTER | RIGHT]] SET MESSAGE WINDOW [WindowName]RESERVEDSET MULTILOCKS ON | OFFRESERVEDSET NEAR ON | OFFRESERVED0SET NOCPTRANS TO [FieldName1 [, FieldName2 ...]]RESERVED/SET NOTIFY ON | OFF SET NOTIFY CURSOR ON | OFFRESERVEDSET NULL ON | OFFRESERVEDSET NULLDISPLAY TO [cNullText]RESERVEDSET ODOMETER TO [nRecords]RESERVEDSET OLEOBJECT ON | OFFRESERVEDSET OPTIMIZE ON | OFFRESERVED…SET ORDER TO [nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [IN nWorkArea | cTableAlias] [ASCENDING | DESCENDING]]ñLPARAMETER oFoxCode LOCAL atags,lnTags,i IF EMPTY(ALIAS()) RETURN .F. ENDIF DIMENSION aTags[1] lnTags = ATAGINFO(atags) IF m.lnTags = 0 RETURN .F. ENDIF DIMENSION oFoxcode.Items[m.lnTags,2] FOR i = 1 TO m.lnTags * oFoxcode.Items[m.i,1] = TRANS(m.i) + " " + CHR(38) + CHR(38) + " " + atags[m.i,3] * oFoxcode.Items[m.i,2] = "Tag number: " + atags[m.i,1] oFoxcode.Items[m.i,1] = atags[m.i,1] + " " + CHR(38) + CHR(38) + " " + atags[m.i,3] ENDFOR oFoxcode.ValueType = "L" RESERVEDSET PALETTE ON | OFFRESERVEDSET PATH TO [Path]ìLPARAMETER oFoxCode LOCAL lcPath lcPath = SET("PATH") IF EMPTY(m.lcPath) RETURN .F. ENDIF DIMENSION oFoxcode.Items[1,2] oFoxcode.Items[1,1] = lcPath oFoxcode.Items[1,2] = "(your current search path)" oFoxcode.ValueType = "L" RESERVEDlSET PDSETUP TO [[cPrinterDriverSetup [, Parameter1[, Parameter2 ...]]] [WITH Parameter3 [, Parameter4 ...]]]RESERVED%SET POINT TO [cDecimalPointCharacter]RESERVEDíSET PRINTER ON [PROMPT] | OFF SET PRINTER FONT cFontName [, cFontSize] [STYLE cFontStyle] SET PRINTER TO [FileName [ADDITIVE] | PortName] SET PRINTER TO [DEFAULT | NAME WindowsPrinterName] SET PRINTER TO NAME \\ServerName\PrinterNameRESERVED:SET PROCEDURE TO [FileName1 [, FileName2, ...]] [ADDITIVE]RESERVEDSET READBORDER ON | OFFRESERVED&SET REFRESH TO nSeconds1 [, nSeconds2]RESERVED™SET RELATION TO [eExpression1 INTO nWorkArea1 | cTableAlias1 [, eExpression2 INTO nWorkArea2 | cTableAlias2 ...] [IN nWorkArea | cTableAlias] [ADDITIVE]]RESERVED ]RESERVEDtTOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] RESERVED‰TRY [ tryCommands ] [ CATCH [ TO VarName ] [ WHEN lExpression ] [ catchCommands ]] [ FINALLY [ finallyCommands ]] ENDTRYRESERVEDPTYPE FileName1 [AUTO] [WRAP] [TO PRINTER [PROMPT] | TO FILE FileName2] [NUMBER] RESERVED@UNLOCK[RECORD nRecordNumber] [IN nWorkArea | cTableAlias] [ALL] RESERVEDŸUPDATE [DatabaseName1!]TableName1 SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2 ...] WHERE FilterCondition1 [AND | OR FilterCondition2 ...]] RESERVEDRESERVED¥USE [[DatabaseName!]Table | SQLViewName | ?] [IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN] [NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList | ? [ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE] [CONNSTRING cConnectionString | (cStatementHandleMemvar)] RESERVEDQVALIDATE DATABASE [RECOVER] [NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE FileName] RESERVEDlWAIT [eMessageText] [TO VarName] [WINDOW [AT nRow, nColumn]] [NOWAIT] [CLEAR | NOCLEAR] [TIMEOUT nSeconds] RESERVEDRESERVED ZAP [IN nWorkArea | cTableAlias]RESERVED†ZOOM WINDOW WindowName MIN | MAX | NORM [AT nRow1, nColumn1 | FROM AT nRow1, nColumn1 [SIZE AT nRow2, nColumn2 | TO nRow2, nColumn2]] RESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDRESERVEDELPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main DO CASE CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="FONT" RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) DIMENSION THIS.oFoxcode.Items[1,2] THIS.oFoxcode.Items[1,1] = "Font Picker..." THIS.oFoxcode.Items[1,2] = "" THIS.oFoxcode.ItemScript = "Font" THIS.oFoxCode.ValueType = "L" RETURN "" OTHERWISE LOCAL lcTyped lcTyped = SUBSTR(THIS.oFoxcode.FullLine,RATC(".",THIS.oFoxcode.FullLine)) THIS.oFoxcode.ValueType = "V" DO CASE CASE ATC(".fontname", lcTyped)#0 RETURN ["] + GETWORDNUM(GetFont(), 1, ",") +["] CASE ATC(".fontsize", lcTyped)#0 RETURN GETWORDNUM(GetFont(), 2, ",") CASE ATC(".fontcharset", lcTyped)#0 RETURN GETWORDNUM(GetFont("_", 0, "", 1), 4, ",") OTHERWISE RETURN "" ENDCASE ENDCASE ENDPROC ENDDEFINERESERVED¾LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main DO CASE CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="COLOR" RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) DIMENSION THIS.oFoxcode.Items[1,2] THIS.oFoxcode.Items[1,1] = "Color Picker..." THIS.oFoxcode.Items[1,2] = "" THIS.oFoxcode.ItemScript = "Color" THIS.oFoxCode.ValueType = "L" RETURN "" OTHERWISE THIS.oFoxcode.ValueType = "V" RETURN GetColor() ENDCASE ENDPROC ENDDEFINE RESERVED1LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main DO CASE CASE VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="PICTURE" RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) DIMENSION THIS.oFoxcode.Items[1,2] THIS.oFoxcode.Items[1,1] = "Image Picker..." THIS.oFoxcode.Items[1,2] = "" THIS.oFoxcode.ItemScript = "Picture" THIS.oFoxCode.ValueType = "L" RETURN "" OTHERWISE LOCAL lcPicture lcPicture = GETPICT() IF LEN(lcPicture) > 0 lcPicture = ['] + lcPicture+ ['] ENDIF THIS.oFoxcode.ValueType = "V" RETURN lcPicture ENDCASE ENDDEFINE RESERVED4* Default script triggered by a space -- used for commands only LPARAMETER oFoxCode LOCAL loFoxCodeLoader, lcLine, lcCmd, lnWords, lcLastCmd, lcTalk lcLine = ALLTRIM(oFoxCode.FullLine) lcCmd = UPPER(ALLTRIM(GETWORDNUM(lcLine,1))) lnWords = GETWORDCOUNT(lcLine) lcLastCmd = GETWORDNUM(lcLine,lnWords) IF EMPTY(lcLine) OR LEFT(lcLine,1)="*" OR ; ATC("L", _VFP.EditorOptions)=0 OR ; UPPER(lcLastCmd)=="AS" RETURN "" ENDIF IF FILE(_CODESENSE) SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN "" ENDIF DEFINE CLASS FoxCodeLoader AS FoxCodeScript PROCEDURE Main() THIS.DefaultScript() ENDPROC ENDDEFINE RESERVED¤LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main() LOCAL lnItems,i,aItems,lcCase DO CASE CASE EMPTY(THIS.oFoxCode.Data) THIS.DisplayTip(THIS.oFoxCode.tip) OTHERWISE IF THIS.nWords > 1 RETURN "" ENDIF DIMENSION aItems[1] lnItems = ALINES(aItems, THIS.oFoxCode.Data) IF EMPTY(THIS.oFoxCode.Data) OR m.lnItems=0 RETURN "" ENDIF DIMENSION THIS.oFoxcode.Items[m.lnItems,2] lcCase = THIS.oFoxCode.Case IF EMPTY(m.lcCase) && Use default case m.lcCase = THIS.oFoxCode.DefaultCase ENDIF IF UPPER(m.lcCase)="X" && Don't Expand RETURN "" ENDIF FOR i = 1 TO m.lnItems THIS.oFoxcode.Items[m.i,1] = THIS.AdjustCase(ALLTRIM(aItems[m.i]),lcCase) ENDFOR THIS.oFoxcode.ValueType = "L" ENDCASE RETURN THIS.AdjustCase() ENDPROC ENDDEFINE RESERVED¬LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main() LOCAL lcItem, lnpos DO CASE CASE !EMPTY(THIS.oFoxcode.MenuItem) OR EMPTY(THIS.oFoxcode.cmd) OR; (THIS.oFoxcode.ParamNum<1 AND RIGHT(THIS.oFoxcode.FullLine,1) # "(" ) * returns item from dropmenu lcItem = THIS.oFoxcode.MenuItem IF !EMPTY(m.lcItem) THIS.oFoxcode.ValueType = "V" lnpos = ATC(' ',m.lcItem) IF m.lnpos > 0 lcItem = LEFT(m.lcItem , m.lnpos - 1) ENDIF ENDIF IF !ISDIGIT(m.lcItem) lcItem = ["] + m.lcItem + ["] ENDIF RETURN m.lcItem CASE RIGHT(THIS.oFoxcode.FullLine,1) = "(" * returns dropdown menu of available items THIS.GetItemList(UPPER(ALLTRIM(THIS.oFoxcode.Expanded)), .T., "funcmenu") RETURN THIS.AdjustCase() OTHERWISE RETURN "" ENDCASE ENDPROC ENDDEFINE RESERVED»LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main() LOCAL lnParmNum,lcLookupCode,lcItem,lnPos,lnLines,i LOCAL aTmpData, aParmData, lcType lcItem = THIS.oFoxcode.menuitem IF ALLTRIM(LOWER(THIS.oFoxCode.abbrev))=="funcmenu2" IF EMPTY(m.lcItem) RETURN lcItem ENDIF * Handle menu item returned THIS.oFoxcode.valuetype = "V" lnpos = ATC(' ',m.lcItem) IF m.lnpos > 0 lcItem = LEFT(m.lcItem , m.lnpos - 1) ENDIF IF !ISDIGIT(m.lcItem) lcItem = ["] + m.lcItem + ["] ENDIF RETURN m.lcItem ENDIF DIMENSION aTmpData[1] DIMENSION aParmData[1,3] STORE "" TO aParmData lnLines = ALINES(aTmpData,ALLTRIM(THIS.oFoxCode.data)) FOR i = 1 TO lnLines IF ISDIGIT(aTmpData[m.i]) lnParmNum = VAL(ALLTRIM(GETWORDNUM(aTmpData[m.i],1,","))) lcLookupCode = ALLTRIM(GETWORDNUM(aTmpData[m.i],2,",")) lcType = ALLTRIM(GETWORDNUM(aTmpData[m.i],3,",")) IF !EMPTY(lcLookupCode) IF !EMPTY(aParmData) DIMENSION aParmData[ALEN(aParmData,1)+1,3] ENDIF aParmData[ALEN(aParmData,1),1] = lnParmNum aParmData[ALEN(aParmData,1),2] = lcLookupCode aParmData[ALEN(aParmData,1),3] = lcType ENDIF ENDIF ENDFOR lnPos = ASCAN(aParmData,THIS.oFoxCode.paramnum+1,-1,-1,1) IF lnPos>0 IF aParmData[lnPos+2]="T" * Display parameter tip THIS.GetCmdTip(aParmData[lnPos+1],"F") ELSE * Display parameter menu THIS.GetItemList(aParmData[lnPos+1], .T., "funcmenu2") ENDIF RETURN "" ENDIF THIS.oFoxCode.valuetype='V' RETURN THIS.AdjustCase() ENDPROC ENDDEFINE RESERVED›LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript * Some folks do not like to have entire SET command expanded for them. * For example: selecting STEP would autoexpand to STEP ON * lEnableFullSetDisplay controls if we expand to STEP or STEP ON lEnableFullSetDisplay = .T. PROCEDURE Main() LOCAL lcMenu, lcItem, lcCmd, lEnableFullSetDisplay, lcFirstWord DO CASE CASE !EMPTY(THIS.oFoxcode.MenuItem) OR THIS.oFoxcode.ParamNum=0 * Next time to display value lcMenu = THIS.oFoxcode.menuitem IF EMPTY(m.lcMenu) RETURN ENDIF lcCmd = UPPER(LEFT(THIS.oFoxCode.FullLine, ATC(' ', THIS.oFoxCode.FullLine))) THIS.GetCmdTip(m.lcCmd+m.lcMenu) lcFirstWord = GETWORDNUM(m.lcMenu,1) IF VARTYPE(THIS.lEnableFullSetDisplay)="L" AND !THIS.lEnableFullSetDisplay ; AND !INLIST(UPPER(lcFirstWord),"COLLATE","DATABASE","STRICTDATE") ; AND !INLIST(UPPER(m.lcMenu),"STATUS BAR") lcMenu = lcFirstWord ENDIF THIS.oFoxcode.ValueType = "V" RETURN m.lcMenu CASE RIGHT(THIS.oFoxcode.FullLine,1) = ' ' AND UPPER(GETWORDNUM(THIS.oFoxcode.FullLine,1)) = "SET" * First time to display entire SET list lcItem = ALLTRIM(THIS.oFoxcode.Expanded) THIS.GetItemList(m.lcItem,.T.,"setmenu","",.T.) RETURN THIS.AdjustCase() OTHERWISE RETURN "" ENDCASE ENDPROC ENDDEFINERESERVED¥* Note: this script doesn't get called directly, but rather from default script LPARAMETER oFoxcode LOCAL i,lnPJX lnPJX = _VFP.Projects.Count IF m.lnPJX = 0 RETURN .F. ENDIF DIMENSION oFoxcode.Items[m.lnPJX,2] FOR i = 1 TO m.lnPJX oFoxcode.Items[m.i,1] = ["]+FORCEEXT(_VFP.Projects[m.i].Name,"") +["]+ " FROM " + ["]+_VFP.Projects[m.i].Name+["] oFoxcode.Items[m.i,2] = "" ENDFOR oFoxcode.ValueType = "L" RESERVEDã* Note: this script doesn't get called directly, but rather from default script LPARAMETER oFoxcode DIMENSION oFoxcode.Items[22,2] WITH oFoxcode .Items[1,1] = 'LEFTARROW' .Items[2,1] = 'RIGHTARROW' .Items[3,1] = 'UPARROW' .Items[4,1] = 'DNARROW' .Items[5,1] = 'HOME' .Items[6,1] = 'END' .Items[7,1] = 'PGUP' .Items[8,1] = 'PGDN' .Items[9,1] = 'ESC' .Items[10,1] = 'DEL' .Items[11,1] = 'BACKSPACE' .Items[12,1] = 'SPACEBAR' .Items[13,1] = 'INS' .Items[14,1] = 'TAB' .Items[15,1] = 'BACKTAB' .Items[16,1] = 'ENTER' .Items[17,1] = 'CTRL+A' .Items[18,1] = 'SHIFT+F1' .Items[19,1] = 'ALT+F1' .Items[20,1] = 'LEFTMOUSE' .Items[21,1] = 'RIGHTMOUSE' .Items[22,1] = 'MOUSE' .ValueType = "L" ENDWITHRESERVEDLPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main() LOCAL lcDBGetCode DO CASE CASE THIS.oFoxCode.paramnum < 1 THIS.oFoxCode.valuetype='V' RETURN THIS.AdjustCase() CASE THIS.oFoxCode.paramnum = 1 THIS.GetItemList("DBGET", .T., "funcmenu2", '', This.oFoxCode.Case) CASE THIS.oFoxCode.paramnum = 2 DO CASE CASE ATC(["CONNECTION"],THIS.oFoxCode.FullLine)#0 lcDBGetCode = "DBGE1" CASE ATC(["DATABASE"],THIS.oFoxCode.FullLine)#0 lcDBGetCode = "DBGE2" CASE ATC(["FIELD"],THIS.oFoxCode.FullLine)#0 lcDBGetCode = "DBGE3" CASE ATC(["TABLE"],THIS.oFoxCode.FullLine)#0 lcDBGetCode = "DBGE4" CASE ATC(["VIEW"],THIS.oFoxCode.FullLine)#0 lcDBGetCode = "DBGE5" OTHERWISE THIS.oFoxCode.valuetype='V' RETURN THIS.AdjustCase() ENDCASE THIS.GetItemList(lcDBGetCode, .T., "funcmenu2", '') ENDCASE RETURN "" ENDPROC ENDDEFINE RESERVEDLPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main() LOCAL lcItem, lnPos, lcMenu, lcFuncKey,lnParm, lSaveError lcMenu = THIS.oFoxcode.MenuItem lnParm = THIS.oFoxcode.ParamNum DO CASE CASE !EMPTY(m.lcMenu) OR EMPTY(THIS.oFoxcode.cmd) OR m.lnParm>-1 OR; (m.lnParm<1 AND RIGHT(THIS.oFoxcode.FullLine,1)#"(") * returns item from dropmenu lcItem = lcMenu lcFuncKey = ALLTRIM(UPPER(THIS.oFoxCode.Abbrev)) IF !EMPTY(m.lcItem) THIS.oFoxcode.valuetype = "V" lnpos = ATC(' ',m.lcItem) * Handle multi words except status IF m.lnpos > 0 AND ATC("STATUS BAR",m.lcItem)=0 lcItem = LEFT(m.lcItem , m.lnpos - 1) ENDIF ENDIF IF !ISDIGIT(m.lcItem) AND (lnParm = -1 OR !EMPTY(lcItem)) lcItem = ["] + m.lcItem + ["] RETURN m.lcItem ENDIF IF lnParm >0 lnPos = RATC(m.lcFuncKey+"(", UPPER(THIS.oFoxCode.FullLine)) lcItem = SUBSTR(THIS.oFoxCode.FullLine,m.lnPos+4) IF ISDIGIT(lcItem) AND ATC(")",lcItem)=0 lcItem = TRANS(VAL(lcItem)) ELSE lcItem = GETWORDNUM(lcItem,1,",") ENDIF ENDIF lcItem = CHRTRAN(m.lcItem,",","") IF ATC(LEFT(m.lcItem,1),['"[])#0 lSaveError = THIS.lHideScriptErrors THIS.lHideScriptErrors=.T. lcItem = EVAL(m.lcItem) THIS.lHideScriptErrors=lSaveError ENDIF THIS.GetSysTip(lcItem,lcFuncKey) IF EMPTY(lcItem) RETURN "" ENDIF RETURN lcItem CASE RIGHT(THIS.oFoxcode.FullLine,1)="(" * returns dropdown menu of available items lcItem = UPPER(ALLTRIM(THIS.oFoxcode.Expanded)) THIS.GetItemList(m.lcItem , .T., "setsysmenu") RETURN THIS.AdjustCase() OTHERWISE RETURN "" ENDCASE ENDPROC ENDDEFINERESERVEDã* Note: this script doesn't get called directly, but rather from default script #DEFINE CURRENTSETTING_LOC "(current setting)" #DEFINE ON_LOC "On" #DEFINE OFF_LOC "Off" LPARAMETER oFoxcode LOCAL lcSetCmd, lcCmd, lcCase DIMENSION oFoxcode.Items[2,2] lcCase = oFoxCode.Case IF EMPTY(ALLTRIM(lcCase)) lcCase = oFoxCode.DefaultCase IF EMPTY(ALLTRIM(lcCase)) lcCase = "M" ENDIF ENDIF oFoxcode.Items[1,1] = AdjustCase(ON_LOC,lcCase) oFoxcode.Items[2,1] = AdjustCase(OFF_LOC,lcCase) IF UPPER(GETWORDNUM(oFoxCode.FullLine,1)) = "SET" lcSetCmd = ALLTRIM(GETWORDNUM(oFoxCode.FullLine,2)) IF EMPTY(lcSetCmd) lcSetCmd = ALLTRIM(oFoxCode.MenuItem) ENDIF lcCmd = UPPER(lcSetCmd) IF !INLIST(lcCmd,"TALK","ESCAPE","EXCLUSIVE","CONSOLE","DEBUG") oFoxcode.Items[IIF(SET(m.lcSetCmd)="ON",1,2),2] = CURRENTSETTING_LOC ENDIF ENDIF oFoxcode.ValueType = "L" PROCEDURE AdjustCase(cItem,cCase) * Adjusts case of keyword expanded to that specified in the _Foxcode script. * Use Version record default if empty DO CASE CASE UPPER(m.cCase)="U" RETURN UPPER(m.cItem) CASE UPPER(m.cCase)="L" RETURN LOWER(m.cItem) CASE UPPER(m.cCase)="P" RETURN PROPER(m.cItem) OTHERWISE RETURN m.cItem ENDCASE ENDPROC RESERVED:LPARAMETER oFoxCode LOCAL loFoxWS loFoxWS = CreateObject("FoxWSHandler") loFoxWS.cWSIsenseClass = "wsclient" loFoxWS.cWSIsenseClassLib = HOME() + "ffc\_webservices" RETURN loFoxWS.Main(oFoxCode) DEFINE CLASS FoxWSHandler as Session cWSIsenseClass = "" cWSIsenseClassLib = "" PROCEDURE Main(oFoxCode) LOCAL loWS loWS = NEWOBJECT(THIS.cWSIsenseClass, THIS.cWSIsenseClasslib) IF VARTYPE(loWS)#"O" RETURN "" ENDIF RETURN loWS.Main(oFoxCode) ENDPROC PROCEDURE Error(nError, cMethod, nLine) MESSAGEBOX(MESSAGE()) ENDPROC ENDDEFINE RESERVEDNLPARAMETERS oFoxcode IF oFoxcode.Location #1 RETURN "DC" ENDIF oFoxcode.valuetype = "V" TEXT TO myvar TEXTMERGE NOSHOW DEFINE CLASS ~classname~ AS Session OLEPUBLIC PROCEDURE Init ENDPROC PROCEDURE Destroy ENDPROC PROCEDURE Error(nError, cMethod, nLine) ENDPROC ENDDEFINE ENDTEXT RETURN myvar@lEnableFullSetDisplay Controls whether autoexpansion of a SET command includes the second word (e.g., TO). lHideScriptErrors Suppresses output to screen of error information when an Intellisense script error occurs (applies to FoxCodeScript objects). lKeywordCapitalization Enables capitalization and expansion of keywords associated with Visual FoxPro commands. lPropertyValueEditors Enables scripts, which trigger value editors, for certain properties. lExpandCOperators Auto expands C type operators such as ++,--,+=,-=,*= and /=. lAllowCustomDefScripts Enable scripts to be plugged into the default script handler. lEnableMultiWordCmdExpansion Controls whether expansion of multi word commands occur (e.g., ZOOM WINDOW). lDebugScripts Allows debugging (tracing) of IntelliSense scripts (applies to FoxCodeScript objects).álEnableFullSetDisplay = .T. lHideScriptErrors = .T. lKeywordCapitalization = .T. lPropertyValueEditors = .T. lExpandCOperators = .T. lAllowCustomDefScripts = .T. lEnableMultiWordCmdExpansion = .T. lDebugScripts = .F. RESERVED zdef zlocRESERVEDHDO CASE <>CASE ~ <>OTHERWISE <>ENDCASEDO WHILE ~ <>ENDDOIF ~ <>ENDIF+IF ~ <>ELSE <>ENDIFFOR EACH ~ <>ENDFORFOR ~ <>ENDFORSCAN ~ <>ENDSCAN0TEXT TO ~ NOSHOW TEXTMERGE <>ENDTEXTWITH ~ <>ENDWITHOTRY <>~ <>CATCH <>FINALLY <>ENDTRY€LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL RELEASE PROCEDURE (_CODESENSE) RETURN m.eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main LOCAL lcActxDBF, lcLastKey lcActxDBF = HOME() + "foxrefs.dbf" DO CASE CASE !FILE(lcActxDBF) OR THIS.oFoxCode.Location=0 THIS.oFoxCode.ValueType = "L" RETURN THIS.AdjustCase() CASE EMPTY(THIS.oFoxcode.MenuItem) AND UPPER(THIS.oFoxCode.Abbrev)="IMPL" DIMENSION THIS.oFoxcode.Items[1,2] THIS.oFoxcode.Items[1,1] = "Select Interface..." THIS.oFoxcode.Items[1,2] = "" THIS.oFoxcode.ItemScript = "GetImplements" THIS.oFoxCode.ValueType = "L" RETURN THIS.AdjustCase() CASE EMPTY(THIS.oFoxcode.MenuItem) RETURN OTHERWISE lKey= LASTKEY() #DEFINE STSEL 17 #DEFINE ENDSEL 18 LOCAL lcData, env DIMENSION env[25] lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL" IF !FILE(lcfxtoollib) RETURN .F. ENDIF SET LIBRARY TO (m.lcfxtoollib) ADDITIVE tnWinHdl = _WONTOP() lcLastKey = LASTKEY( ) lcData=THIS.GetInterface() IF !EMPTY(lcData) _wselect(tnWinHdl) _EdGetEnv(tnWinHdl,@env) _EDINSERT(tnWinHdl, lcData, LEN(lcData)) _EDSETPOS(tnWinHdl, env[STSEL]) IF lcLastKey=13 && user hit Return -- note Mouse click also does this. KEYBOARD '{BACKSPACE}' KEYBOARD '{SPACEBAR}' ENDIF ENDIF THIS.oFoxCode.ValueType = "T" RETURN "" ENDCASE ENDPROC ENDDEFINERESERVEDCLPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main IF VARTYPE(THIS.lPropertyValueEditors)#"L" OR !THIS.lPropertyValueEditors RETURN ENDIF DO CASE CASE EMPTY(THIS.oFoxcode.MenuItem) AND UPPER(ALLTRIM(THIS.oFoxCode.Abbrev))=="CLASSLIB" RETURN CASE EMPTY(THIS.oFoxcode.MenuItem) DIMENSION THIS.oFoxcode.Items[1,2] THIS.oFoxcode.Items[1,1] = "Class Picker..." THIS.oFoxcode.Items[1,2] = "" THIS.oFoxcode.ItemScript = "Classlib" THIS.oFoxCode.ValueType = "L" RETURN "" OTHERWISE LOCAL lcFile lcFile = GETFILE("VCX,PRG") IF LEN(lcFile) > 0 lcFile = ['] + lcFile+ ['] ENDIF THIS.oFoxcode.ValueType = "V" RETURN lcFile ENDCASE ENDPROC ENDDEFINE RESERVEDALPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader as FoxCodeScript PROCEDURE Main IF THIS.nWords > 1 * Triggers default script DisplayTip RETURN .F. ENDIF THIS.oFoxcode.ValueType = "T" THIS.oFoxcode.ValueTip = THIS.oFoxcode.Tip IF VARTYPE(THIS.lEnableMultiWordCmdExpansion)="L" AND !THIS.lEnableMultiWordCmdExpansion RETURN THIS.AdjustCase(GETWORDNUM(ALLTRIM(THIS.oFoxcode.Expanded),1), THIS.oFoxcode.Case) ELSE RETURN THIS.AdjustCase() ENDIF ENDPROC ENDDEFINERESERVED´LPARAMETER oFoxcode IF FILE(_CODESENSE) LOCAL eRetVal, loFoxCodeLoader SET PROCEDURE TO (_CODESENSE) ADDITIVE loFoxCodeLoader = CreateObject("FoxCodeLoader") eRetVal = loFoxCodeLoader.Start(m.oFoxCode) loFoxCodeLoader = NULL IF ATC(_CODESENSE,SET("PROC"))#0 RELEASE PROCEDURE (_CODESENSE) ENDIF RETURN eRetVal ENDIF DEFINE CLASS FoxCodeLoader AS FoxCodeScript cProxyClass = "wsfoxcode" cProxyClasslib = HOME()+"ffc\_ws3utils" PROCEDURE Main LOCAL loWS loWS = NEWOBJECT(THIS.cProxyClass, THIS.cProxyClasslib) IF VARTYPE(loWS) # "O" RETURN "" ENDIF RETURN loWS.Main(THIS.oFoxCode) ENDPROC ENDDEFINE RESERVED®LPARAMETER oFoxcode LOCAL lcLine, lcSpace, lnPos, lcCase, lcData lcLine = oFoxcode.FullLine IF oFoxcode.Location=0 OR GETWORDCOUNT(lcLine)#1 RETURN oFoxcode.UserTyped ENDIF lnPos = ATC(ALLTRIM(oFoxcode.Abbrev),lcLine) lcSpace = SUBSTR(lcLine,1,lnPos-1) oFoxcode.valuetype = "V" * Get case lcCase = oFoxCode.Case IF EMPTY(ALLTRIM(lcCase)) lcCase = oFoxCode.DefaultCase IF EMPTY(ALLTRIM(lcCase)) lcCase = "M" ENDIF ENDIF * Process and return expanded control statement lcData = AdjustCase(oFoxCode.Data, lcCase) RETURN TEXTMERGE(lcData) PROCEDURE AdjustCase(cItem, cCase) * Adjusts case of keyword expanded to that specified in the _Foxcode script. * Use Version record default if empty DO CASE CASE UPPER(m.cCase)="U" RETURN UPPER(m.cItem) CASE UPPER(m.cCase)="L" RETURN LOWER(m.cItem) CASE UPPER(m.cCase)="P" RETURN PROPER(m.cItem) OTHERWISE RETURN m.cItem ENDCASE ENDPROC RESERVED LPARAMETER oFoxScript * This script iterates thru all the #DEFINEs in the routine and lists them. * It also iterates through and #INCLUDE files that may exists as well (both for * programs and snippets). The PARAMETER passed in is reference to * FoxCodeScript object. SCX files are not supported for #INCLUDES since * VFP opens them up in designer exclusively. * * To enable this script, make sure that you have the lAllowCustomDefScripts * custom property set to .T. (you can set this in the IntelliSense Manager). LOCAL lcfxtoollib, lnWinHdl, laEnv, lcStr, lnLines, i, lcLine, lcDefDesc, laLines, lcLastWord, lcSaveStr IF oFoxScript.oFoxcode.Location=0 &&Command Window RETURN .F. ENDIF IF !UPPER(oFoxScript.oFoxcode.UserTyped) == UPPER(oFoxScript.cCustomScriptName) && ZDEF script RETURN .F. ENDIF lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL" IF !FILE(lcfxtoollib) RETURN .F. ENDIF SET LIBRARY TO (m.lcfxtoollib) ADDITIVE lnWinHdl = _WONTOP() _wselect(lnWinHdl) DIMENSION laEnv[25] _EdGetEnv(lnWinHdl ,@laEnv) lcStr = _EDGETSTR(lnWinHdl , 0, laEnv[17]) lcSaveStr = lcStr GetIncludeDefs(lcStr, oFoxScript.oFoxCode) * Check for Code Snippet #INCLUDE files IF oFoxScript.oFoxCode.Location=10 DIMENSION laObj[1] IF aSelObj(laObj, 3)#0 AND FILE(laObj[3]) GetIncludeDefs(FILETOSTR( laObj[3]), oFoxScript.oFoxCode) ENDIF ENDIF IF !EMPTY(oFoxScript.oFoxcode.Items[1]) DIMENSION laLines[1] lnLines = ALINES(laLines,lcSaveStr ) lcLastWord = ALLTRIM(GETWORDNUM( laLines[ALEN(laLines)] , GETWORDCOUNT(laLines[ALEN(laLines)] ))) lcLastWord=LEFT(lcLastWord, LEN(lcLastWord) - LEN(oFoxScript.cCustomScriptName)) oFoxScript.ReplaceWord(lcLastWord) * Handle extra space IF ASC(RIGHT(oFoxScript.oFoxCode.FullLine,1))=32 _EDSETPOS(lnWinHdl, _EDGETPOS(lnWinHdl) - 1) ENDIF oFoxScript.oFoxCode.ValueType = "L" ENDIF RETURN "" PROCEDURE GetIncludeDefs(tcStr, toFoxCode) LOCAL lcStr1, lnLines, i, lcLine, lcDefDesc, laLines, lnALen, lcDefWord, lcIncludeFile, lcStr2 IF EMPTY(tcStr) RETURN ENDIF lcStr1 = tcStr DIMENSION laLines[1] lnLines = ALINES(laLines,lcStr1) FOR i = 1 TO lnLines lcLine = ALLTRIM(laLines[m.i]) IF UPPER(LEFT(lcLine,5)) = "#INCL" lcIncludeFile = GETWORDNUM(lcLine,2) IF FILE(lcIncludeFile) lcStr2 = FILETOSTR( lcIncludeFile) GetIncludeDefs(lcStr2, toFoxCode) ENDIF ENDIF IF !UPPER(LEFT(lcLine,5)) = "#DEFI" LOOP ENDIF lnALen = ALEN(toFoxCode.Items,1) IF !EMPTY(toFoxCode.Items[1]) DIMENSION toFoxCode.Items[lnALen+1,2] lnALen = ALEN(toFoxCode.Items,1) ENDIF lcDefWord = GETWORDNUM(lcLine, 2) toFoxCode.Items[lnALen, 1] = lcDefWord lcDefDesc = SUBSTR(lcLine, ATC(lcDefWord,lcline)+LEN(lcDefWord)) toFoxCode.Items[lnALen, 2] = lcDefDesc ENDFOR ENDPROCRESERVEDëLPARAMETER oFoxScript * This script iterates thru all the Locals in the routine and lists them. * The PARAMETER passed in is reference to FoxCodeScript object. * The routine is smart and detects scope so that locals in procedures * above or below are excluded. * * To enable this script, make sure that you have the lAllowCustomDefScripts * custom property set to .T. (you can set this in the IntelliSense Manager). LOCAL lcfxtoollib, lnWinHdl, laEnv, lcStr, lnLines, i, lcLine, lcDefDesc, laLines, lcLastWord IF oFoxScript.oFoxcode.Location=0 &&Command Window RETURN .F. ENDIF IF !UPPER(oFoxScript.oFoxcode.UserTyped) == UPPER(oFoxScript.cCustomScriptName) &&Script = ZLOC RETURN .F. ENDIF lcfxtoollib = SYS(2004)+"FOXTOOLS.FLL" IF !FILE(lcfxtoollib) RETURN .F. ENDIF SET LIBRARY TO (m.lcfxtoollib) ADDITIVE lnWinHdl = _WONTOP() _wselect(lnWinHdl) DIMENSION laEnv[25] _EdGetEnv(lnWinHdl ,@laEnv) lcStr = _EDGETSTR(lnWinHdl , 0, laEnv[17]) GetLocDefs(lcStr, oFoxScript.oFoxCode) IF !EMPTY(oFoxScript.oFoxcode.Items[1]) DIMENSION laLines[1] lnLines = ALINES(laLines,lcStr) lcLastWord = ALLTRIM(GETWORDNUM( laLines[ALEN(laLines)] , GETWORDCOUNT(laLines[ALEN(laLines)] ))) lcLastWord=LEFT(lcLastWord, LEN(lcLastWord) - LEN(oFoxScript.cCustomScriptName)) oFoxScript.ReplaceWord(lcLastWord) * Handle extra space IF ASC(RIGHT(oFoxScript.oFoxCode.FullLine,1))=32 _EDSETPOS(lnWinHdl, _EDGETPOS(lnWinHdl) - 1) ENDIF oFoxScript.oFoxCode.ValueType = "L" ENDIF RETURN "" PROCEDURE GetLocDefs(tcStr, toFoxCode) LOCAL lcStr, lnLines, i, lcLine, laLines, lnALen, j, lcWord, lcWords, lnFirstLine, lcInlineParms LOCAL lnPos1, lnPos2, lHasLineContinuation lcInlineParms = "" IF EMPTY(tcStr) RETURN ENDIF lcStr = tcStr DIMENSION laLines[1] lnLines = ALINES(laLines,lcStr) * Quick search backward to find its procedure FOR i = lnLines TO 1 STEP -1 lcWord = ALLTRIM(GETWORDNUM(ALLTRIM(laLines[m.i]), 1)) IF LEN(lcWord)>3 AND (ATC(lcWord,"PROCEDURE")#0 OR ATC(lcWord,"FUNCTION")#0) * since we are here, let's handle any inline parms lcWord = ALLTRIM(laLines[m.i]) IF ATC(REPLICATE("&",2), lcWord)#0 && strip out comments lcWord = ALLTRIM(LEFT(lcWord, ATC(REPLICATE("&",2),lcWord)-1) ) ENDIF lnPos1 = ATC("(", lcWord) lnPos2 = RATC(")", lcWord) * Check for inline parms IF lnPos1#0 AND lnPos2#0 * inline parms lcInlineParms = ALLTRIM(SUBSTRC(lcWord, lnPos1+1, lnPos2 - lnPos1 - 1)) ENDIF EXIT ENDIF ENDFOR lnFirstLine = MAX(m.i,1) * Iterate through each line lHasLineContinuation = .F. FOR i = lnFirstLine TO lnLines lcLine = ALLTRIM(laLines[m.i]) IF lHasLineContinuation IF LEFT(GETWORDNUM(lcLine,1),1)="," lcLine = SUBSTRC(lcLine,ATC(",",lcLine)+1) ENDIF lcLine = "LOCAL " + lcLine ENDIF lcWord = ALLTRIM(GETWORDNUM(lcLine, 1)) * Loop upward until we encounter a PROC or * FUNCTION call indicating out of scope. IF LEN(lcWord)>3 AND (ATC(lcWord,"PROCEDURE")#0 OR ATC(lcWord,"FUNCTION")#0) * Check for inline parms IF EMPTY(lcInlineParms) LOOP ENDIF lcLine = "LPARAMETERS " + lcInlineParms lcWord = "LPARAMETERS" ENDIF * Look only for LOCAL, PUBLIC, PARAM or LPARAM statements IF LEN(lcWord)>3 AND ; ( ATC(lcWord+" ","LOCAL ")#0 OR ; ATC(lcWord,"PUBLIC")#0 OR; ATC(lcWord,"PARAMETERS")#0 OR; ATC(lcWord,"LPARAMETERS")#0 ) ELSE LOOP ENDIF lcWords = SUBSTRC(lcLine, ATC(GETWORDNUM(lcLine, 2), lcLine)) IF ATC(REPLICATE("&",2), lcWords)#0 && strip out comments lcWords = ALLTRIM(LEFT(lcWords, ATC(REPLICATE("&",2),lcWords)-1) ) ENDIF * Have a valid statement so now Iterate through each word (separated by comma) FOR j = 1 to GETWORDCOUNT(lcWords, ",") lcWord = GETWORDNUM(lcWords, m.j, ",") * If arrays, then we need to parse out the indexes IF UPPER(GETWORDNUM(lcWord,1)) == "ARRAY" * Skip to second word lcWord = GETWORDNUM(lcWord,2) ENDIF lcWord = ALLTRIM(GETWORDNUM(lcWord,1)) * Parse out any array stuff. DO CASE CASE ATC("[", lcWord)#0 lcWord = LEFT(lcWord, ATC("[", lcWord)-1) CASE ATC("(", lcWord)#0 lcWord = LEFT(lcWord, ATC("(", lcWord)-1) CASE ATC("]", lcWord)#0 OR ATC(")",lcWord)#0 LOOP CASE ATC(";", lcWord)#0 lcWord = LEFT(lcWord, ATC(";", lcWord)-1) IF EMPTY(lcWord) LOOP ENDIF ENDCASE lnALen = ALEN(toFoxCode.Items,1) IF !EMPTY(toFoxCode.Items[1]) DIMENSION toFoxCode.Items[lnALen+1,2] lnALen = ALEN(toFoxCode.Items,1) ENDIF toFoxCode.Items[lnALen, 1] = lcWord ENDFOR * Check for line continuation lHasLineContinuation = (RIGHT(lcWords,1) = ";") ENDFOR ENDPROC RESERVED